package com.SpringIoc.test_1_25_springioc_and_di.Config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

@Configuration
public class BeanConfig {
    @Bean
    public String name(){
        return "zhangsan";
    }

    public String name1(){
        return "wangwu";
    }
   @Primary
    @Bean
    public UserInfo userInfo1(String name){
        UserInfo userInfo = new UserInfo();
        userInfo.setId(1);
        userInfo.setName(name);
        userInfo.setAge(12);
        return userInfo;
    }
    @Bean
    public UserInfo userInfo2(){
        UserInfo userInfo = new UserInfo();
        userInfo.setId(2);
        userInfo.setName("lisi");
        userInfo.setAge(13);
        return userInfo;
    }

    // 那么Spring 能否拿到这个两个对象呢?


    // 呢么如何在这个方法里面传递参数呢?
    // 直接传入参数呢 是会报错的
    // 会显示 应用启动失败了
    // 缺少了 string 类型的 bean
    // 需要再加一个
    //  public String name(){
    //        return "zhangsan";
    //    }
    // 用这种方式就不是写死的了, 当前阶段还看不到有什么区别

    // 那么如果再定义一个String 类呢? 会执行哪一个呢?
    // 这时候会根据名称来取拿了
    // 如果当前需要的Bean的雷响, 对应的对象只有一个时 就直接赋值了
    // 如果有多个时, 就通过名称去匹配


}
